
import java.util.Arrays;
import java.util.Scanner;

/*5.创建一个Java程序，以数字等级（0-100）输入5个stude nt结果。如果输入的分数小于0或大于100，
则要求重新输入该特定分数。您的程序是计算和显示班级平均成绩，并display最高和最低成绩时，
选择适当的菜单选项输入分数班级平均  最高 最低 排序 退出 检查 功能后添加完成。
当用户没有输入分数，如果选择了其他函数，提示请先输入分数，然后exe cute函数将给出，并返回主菜单
 */
public class Student {
    //菜单
    public static char  menu(){
        System.out.println("***************");
        System.out.println("**O.输入分数  **");
        System.out.println("**A.查看平均分**");
        System.out.println("**B.查看最高分**");
        System.out.println("**C.查看最低分**");
        System.out.println("**D.排序输出  **");
        System.out.println("**E.退出     **");
        System.out.println("***************");
        System.out.println("请选择您要进行的操作：");
        Scanner scanner=new Scanner(System.in);
        char chose=scanner.next().charAt(0);
        return chose;
    }


    //输入成绩
    public static void input(double[] array) {
        Scanner scanner=new Scanner(System.in);
        int i = 0;
        while (i < 5) {
            System.out.println("第" + (i + 1) + "名学生成绩为：");
            double arr = scanner.nextDouble();
            if (arr < 0 || arr > 100) {
                System.out.println("输入错误请重新输入");
            } else {
                array[i] = arr;
                i++;
            }
        }
    }


    //平均分
    public static double average(double[] array){
        double sum=0.0;
        for (int i = 0; i < 5; i++) {
            sum+=array[i];
        }
        return sum/5.0;
    }


    //最高分
    public static double max(double[] array){
        double m=array[0];
        for (int i = 1; i < 5; i++) {
            if(m<array[i]){
                m=array[i];
            }
        }
        return m;
    }


    //最低分
    public static double min(double[] array){
        double m=array[0];
        for (int i = 1; i < 5; i++) {
            if(m>array[i]){
                m=array[i];
            }
        }
        return m;
    }


    //排序
    public static void sort(double[] array){

        Arrays.sort(array);//排序数组 Arrays.sort
    }


    public static void main(String[] args) {
        char chose=menu();
        double[] array={0.0,0.0,0.0,0.0,0.0};//要初始化，显式地赋初值，不然下面那句input(array);会报错  这样也会报错double[] array=null
        while(chose!='O'){
            System.out.println("请先输入五名学生的成绩!");
            chose=menu();
        }
        input(array);
        do{
            chose=menu();
            switch(chose){
                case 'O':
                    input(array);break;
                case 'A':
                    System.out.println("平均分为："+average(array));break;
                case 'B':
                    System.out.println("最高分为：" + max(array));break;
                case 'C':
                    System.out.println("最低分为：" + min(array));break;
                case 'D':
                    sort(array);
                    System.out.println(Arrays.toString(array));break;
            }
        }while(chose!='E');
        System.out.println("已退出");
    }
}
 /*chose=menu();
        while(chose!='E'){
            switch(chose){
                case 'O':
                    input(array);break;
                case 'A':
                    System.out.println("平均分为："+average(array));break;
                case 'B':
                    System.out.println("最高分为：" + max(array));break;
                case 'C':
                    System.out.println("最低分为：" + min(array));break;
                case 'D':
                    sort(array);
                    System.out.println(Arrays.toString(array));break;
            }
            chose=menu();
        }可变为do while*/
